package com.niiwoo.civet.system.service;

import com.niiwoo.civet.system.dto.common.SysConfParamDTO;
import com.niiwoo.civet.system.dto.request.DeleteParamRequestDTO;
import com.niiwoo.civet.system.dto.request.InsertParamRequestDTO;
import com.niiwoo.civet.system.dto.request.QueryParamsRequestDTO;
import com.niiwoo.civet.system.dto.request.UpdateParamRequestDTO;
import com.niiwoo.tripod.provider.dto.response.PageResponseDTO;

public interface SysParamService {
    /**
     * 新建系统配置
     *
     * @return 新增的参数ID
     */
    int insertParam(InsertParamRequestDTO insertParamRequest);


    /**
     * 修改系统配置
     */
    void updateParam(UpdateParamRequestDTO updateParamRequest);


    /**
     * 根据主键删除
     */
    void deleteParam(DeleteParamRequestDTO deleteParamRequest);


    /**
     * 根据ID查询，查不到数据时返回NULL
     *
     * @param paramId 参数ID
     */
    SysConfParamDTO queryParam(Integer paramId);


    /**
     * 根据key查询，查不到数据时返回NULL
     *
     * @param paramKey 参数Key
     * @return
     */
    SysConfParamDTO queryParamByKey(String paramKey);

    /**
     * 根据参数类型和参数Key查询,支持分页
     *
     * @param queryParamsRequest .paramType 参数类型
     * @param queryParamsRequest .paramKey 参数KEY,支持模糊查询
     * @param queryParamsRequest .pageSize 页大小
     * @param queryParamsRequest .pageNumber 第几页
     * @return
     */
    PageResponseDTO<SysConfParamDTO> queryParams(QueryParamsRequestDTO queryParamsRequest);


}
